package com.xyoto.community.mapper.comment;

import com.xyoto.community.entity.comment.DynamicComment;
import com.xyoto.community.po.*;

import java.util.List;

/**
 * 动态评论表mapper
 */
public interface DynamicCommentMapper {

    /**
     * 根据动态评论id查询动态评论详情
     * @param dynamicCommentId
     * @return
     */
    DynamicComment selectOneByDynamicCommentId(Integer dynamicCommentId);

    /**
     * 获取热门动态评论总数
     * @param list
     * @return
     */
    List<DynamicHotNumPO> getHotDynamicCommentCount(List<DynamicHotNumPO> list);

    Integer countDynamicCommentById(Integer dynamicId ,Short deleteStatus);

    /**
     * 先动态评论
     * @param dynamicComment
     * @return
     */
    Integer insertDynamicComment(DynamicComment dynamicComment);

    /**
     * 获取评论po
     * @param dynamicId 动态id
     * @return 评论po
     */
    List<DynamicCommentPo> getDynamicComment(Integer dynamicId);

    /**
     * 根据动态评论id 获取动态评论内容
     * @param moduleId 动态评论id
     * @return 动态评论内容
     */
    String getOneDynamicCommentContentByDynamicCommentId(Integer moduleId);

    /**
     * 删除动态评论
     * @param dynamicComment 实体
     * @return
     */
    Integer removeDynamicComment(DynamicComment dynamicComment);

    /**
     * 根据动态id获取动态评论
     *
     * @param dynamicId 动态id
     * @return
     */
    List<Integer> getDynamicCommentIdList(Integer dynamicId);

    /**
     * 获取评论内容
     * @param dynamicCommentIds 评论id集合
     * @return 评论结果集
     */
    List<DynamicCommentPo> getDynamicCommentListByIds(List<Integer> dynamicCommentIds);

    /**
     * 获取动态评论列表信息
     * @param dynamicCommentIdsP  评论id集合
     * @return 评论内容
     */
    List<MessageDynamicCommentPO> getDynamicCommentContent(List<Integer> dynamicCommentIdsP);

    /**
     * 动态评论消息数目
     * @param dynamicIds 评论id集合
     * @return
     */
    List<DynamicCommentCountPO> getDynamicCommentCount(List<Integer> dynamicIds);

    /**
     * 根据动态评论id查询动态评论信息
     * @param commentId
     * @return
     */
    DynamicCommentPo getDynamicCommentMessageByCommentId(Integer commentId);

    /**
     * 根据评论id更新评论内容
     * @param dynamicComment
     * @return
     */
    Integer updateDynamicCommentById(DynamicComment dynamicComment);


    List<DynamicCommentCountPO> countAllDynamic(short deleteStatus);

    List<DynamicComment> selectAll(short deleteStatus);
}

